#问题 1) 使用while 和 for…in 两个循环分别输出四种九九乘法表效果
#方法一
for x in range(1,10):
    for y in range(1,x+1):
        print('{}x{}={:<2}'.format(y,x,x*y),end='  ')
    print('')
#方法二
print('='*70)
for x in range(9,0,-1):
    for y in range(1,x+1):
        print('{}x{}={:<2}'.format(y,x,x*y),end='  ')
    print('')
#方法三
print('='*70)
x=1
while x<=9:
    y=x
    z=1
    while z<=9-x:
        print(end='        ')
        z+=1
    while y>0:
        print('{}*{}={:<2}'.format(y,x,x*y),end='  ')
        y-=1
    print('')
    x+=1
#方法四
print('='*70)
x=9
while x>0:
    y=x
    z=1
    while z<=9-x:
        print(end='        ')
        z+=1
    while y>0:
        print('{}*{}={:<2}'.format(y,x,x*y),end='  ')
        y-=1
    print('')
    x-=1
#问题二  使用文件和目录操作，定义一个统计指定目录大小的函数（注意目录中还有子 目录
print('='*70)
print('='*70)
import os
size=0
def count_size(path):
    global size
    dirlist=os.listdir(path)
    for d in dirlist:
        dir_path=os.path.join(path,d)
        if os.path.isfile(dir_path):
            file_size=os.path.getsize(dir_path)
            size+=file_size
        else:
            count_size(dir_path)

count_size('D:\\test')
print(size)

#问题三
import time
print('='*70)
print('='*70)
user_information=[{'name':'zhangsan','pwd':'123456','money':1000},
                  {'name':'lisi','pwd':'123456','money':1000},
                  {'name':'wangwu','pwd':'123456','money':1000}]

#查询余额
def check(id):
    global user_information
    print('您的余额为：',user_information[id]['money'])
#取钱
def take_out(id):
    global user_information
    while True:
        a=float(input('请输入取款金额：'))
        if a>user_information[id]['money']:
            print('余额不足！请重新输入!')
        if a<=user_information[id]['money']:
            print('取款成功！',end='')
            user_information[id]['money']=user_information[id]['money']-a
            break
#存钱
def take_in(id):
    global user_information
    b=float(input('请输入存款金额：'))
    user_information[id]['money']=user_information[id]['money']+b
    print('存款成功！',end='')
#退出
def login_out():
    print('========== 感谢使用！ ==========')

#显示
def show(id):
     while True:
        print('='*10,'欢迎使用钱多银行！','='*10)
        print('{}{:15}{}'.format('      ','1.查询余额','2.存款'))
        print('{}{:16}{}'.format('      ','3.取款', '4.退出'))
        num=input('请选择您的服务类型：')
        if num=='1':
            check(id)
            input('按回车返回主菜单！')
        elif num=='2':
            take_in(id)
            input('按回车返回主菜单！')
        elif num=='3':
            take_out(id)
            input('按回车返回主菜单！')
        elif num=='4':
            login_out()
            n=4
            return n
        else:
            print('请选择正确的类型！')

#登陆
def login():
    global user_information
    n=1
    while True:
        name=input('请输入登陆账号名：')
        pwd=input('请输入密码：')
        for id in range(len(user_information)):
            if name==user_information[id]['name']:
                if pwd==user_information[id]['pwd']:
                    show(id)
                    break
                else:
                    if n==1 or n==2:
                        print('密码不正确！')
                        n+=1
                        break
                    else:
                        print('您的账户已被锁定，请到柜台解锁！再见!')
                        time.sleep(5)
                        return
        else:
            print('账号不存在！')
            break

login()